home *** CD-ROM | disk | FTP | other *** search
- #include "../CGVPMacro.csi"
-
- MainInput { uniform sampler2D baseMap : texunit0,
- uniform sampler2D caustMap : texunit1,
- uniform sampler2D detMap0 : texunit2,
- uniform sampler2D detMap1 : texunit3,
- uniform float4 Ambient,
- uniform float4 DetMask0,
- uniform float4 DetMask1 }
- DeclarationsScript
- {
- OUT_T0_T1_T2_T3_C0_C1
- FOUT
- }
- CoreScript
- {
- // load the decal
- float4 decalColor = tex2D(baseMap, IN.Tex0.xy);
- // load the caust
- float4 caustColor = tex2D(caustMap, IN.Tex1.xy);
- // load the detail
- float4 detColor0 = tex2D(detMap0, IN.Tex2.xy);
- float4 detColor1 = tex2D(detMap1, IN.Tex3.xy);
-
- float3 caust = caustColor.xyz * IN.Color.a * Ambient.xyz;
- float3 color = decalColor.xyz * IN.Color.xyz * Ambient.xyz;
- float fLerp = dot(IN.Color1.xyz, DetMask0);
- detColor0.xyz = lerp(0.5, detColor0.xyz, fLerp);
- fLerp = dot(IN.Color1.xyz, DetMask1);
- detColor1.xyz = lerp(0.5, detColor1.xyz, fLerp);
- color.xyz = (color.xyz + caust.xyz) * 2;
- color.xyz = color * detColor0.xyz + color * detColor0.xyz;
- color.xyz = color * detColor1.xyz + color * detColor1.xyz;
- OUT.Color.xyz = color.xyz;
- OUT.Color.a = decalColor.a * Ambient.a;
- }
-
-
-